#guide
This guide walks you through building a personal CRM with SilverBullet. You'll use person pages, meeting notes, linked mentions, linked tasks, and page decorations to automatically track your interactions with people.
Make a page for someone you interact with, let’s say “Alice.” Add Frontmatter to describe them:
---
---
Create a few more person pages the same way.
Add a tag.define call to your CONFIG page so person pages get a visual prefix:
tag.define {
name = "person",
transform = function(o)
o.pageDecoration = { prefix = "🧑 " }
return o
end
}
After a reload, person pages will show a 🧑 prefix in the Page Picker, Completion|completions, and editor. See Page Decorations and API/tag for more options.
warning Warning Tag customization is still a beta feature, it may change in the future.
Create a page like “Meeting/2026-03-04” and write naturally, linking to attendees:
Met with [Alice](Alice) and [Bob](Bob) to discuss the Q2 roadmap. Alice will lead the backend migration.
The [Alice](Alice) and [Bob](Bob) links connect this meeting note to their person pages.
Write tasks that reference person pages:
* [ ] Send proposal to [Alice](Alice)
* [ ] Schedule follow-up with [Bob](Bob)
* [ ] Share roadmap doc with [Alice](Alice) and [Bob](Bob)
These tasks are now linked to both the meeting notes page and the person pages.
Open Alice’s page. Two things happen automatically:
Alice’s page becomes an automatic activity log without you maintaining it.
Build useful views on a “People” page or your home page:
# People at Acme Corp
${query[from p = tags.person where p.company == "Acme Corp"](from p = tags.person where p.company == "Acme Corp")}
Show all people, grouped by company:
${query[
from p = tags.person
order by p.company
](
from p = tags.person
order by p.company
)}
You now have a very basic personal CRM: person pages with structured data, meeting notes that link to attendees, tasks that reference people, and automatic activity logs via linked mentions and linked tasks.